/**
 * 文件名：DeviceStatService.java
 *
 * 创建人：Elvin Zhao - 279152260@qq.com
 *
 * 创建时间：2018年7月24日 上午2:10:35
 *
 * 版权所有：FNII
 */
package com.springvision.yuanfeng.device.service;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.jeeplus.common.utils.time.DateFormatUtil;
import com.springvision.yuanfeng.device.entity.DeviceMessage;
import com.springvision.yuanfeng.device.mapper.DeviceStatMapper;

/**
 * [描述信息：说明类的基本功能]
 *
 * @author Elvin Zhao - 279152260@qq.com
 * @version 1.0 Created on 2018年7月24日 上午2:10:36
 */
@Service
public class DeviceStatService implements Serializable {

	@Autowired
	private DeviceStatMapper mapper;

	/**
	 * 返回指定日期，指定设备的24小时上报数据 24小时补全，并且按顺序
	 * 
	 * @param deviceId
	 * @param day
	 * @return
	 * @author: Elvin Zhao - 279152260@qq.com
	 * @date: Created on 2018年7月24日 上午2:13:04
	 */
	public List<String> getDeviceValueNowByHours(String deviceId, String day) {
		if (StringUtils.isBlank(day)) {
			day = DateFormatUtil.formatDate(DateFormatUtil.PATTERN_ISO_ON_DATE, new Date());
		}
		return mapper.findDevice24HourReportValue(day, deviceId);
	}

	/**
	 * 
	 * 返回所有设备的当前数值
	 * 
	 * @return
	 * @author: Elvin Zhao - 279152260@qq.com
	 * @date: Created on 2018年7月24日 上午2:17:28
	 */
	public List<DeviceMessage> getAllDeviceValueNow(String stationId, String day) {
		if (StringUtils.isBlank(day)) {
			day = DateFormatUtil.formatDate(DateFormatUtil.PATTERN_ISO_ON_DATE, new Date());
		}
		return mapper.findDeviceLastestReportValue(day, stationId);
	}

	/**
	 * 返回所有设备的当前数值， map返回
	 * 
	 * @param stationId
	 * @param day
	 * @return
	 */

	public Map<String, DeviceMessage> getAllDeviceValueNow2(String stationId, String day) {
		if (StringUtils.isBlank(day)) {
			day = DateFormatUtil.formatDate(DateFormatUtil.PATTERN_ISO_ON_DATE, new Date());
		}
		return mapper.findDeviceLastestReportValue2(day, stationId);
	}

	public Integer getDeviceReportCount(String deviceId) {
		return mapper.getDeviceReportCount(deviceId);
	}

}
